This invention relates generally to domino circuits, and more particularly to reducing network costs for domino circuits.
The speeds at which electronic circuits are required to perform is constantly increasing. As the overall processor speed becomes faster, the need for faster internal circuitry has increased. The need for high speed circuits is not limited to processors, but applies everywhere from cellular phones to digital broadcast receiver systems. Many hand held devices use application specific integrated circuits (ASICs) and they must approach microprocessor frequency targets but have an even tighter area budget. A way to increase the speed of a circuit is to use domino circuits (dynamic logic circuits) instead of static CMOS circuits. A domino circuit includes one or more domino gates. A typical domino gate has a precharge transistor, an evaluate transistor, and an inverting buffer. Domino circuits are generally faster than circuits implemented in CMOS static circuits. For example, domino circuits typically account for thirty percent of the logic transistors of a microprocessor.
Domino circuits have a number of network costs which designers desire to reduce. Some of these costs are power consumption and area.
The use of domino circuits in high-performance microprocessor design is an efficient way of meeting demanding circuit speeds without exorbitant area penalty and high clock-loading implied by static CMOS implementations. One kind of Domino logic style allows a single clock to precharge and evaluate a cascade of dynamic logic blocks where a static CMOS inverting buffer or latch appears at the output of each dynamic logic gate. Despite various area and speed advantages, the safest and the fastest domino design styles can only implement logic networks without invertors because of the inherent monotonic nature of domino circuits. However, this fundamental constraint of implementing logic functions without any intermediate inversions implies significant area overhead from logic duplication for generating both the negative and positive signal phasesxe2x80x94the so-called xe2x80x9cdual-railxe2x80x9d implementations.
CMOS static logic is synthesized using the flexibility of manipulating inverters in the logic network. The inverter-free constraint in domino logic design limits this flexibility since it may require logic duplication because of the inverter-free constraint. This constraint implies that all logic inversions should be performed at the primary inputs or primary outputs where the inverters can be absorbed in registers.
Currently, a way to convert a logic circuit into an inverter free domino logic circuit is to convert the logic circuit into AND, OR, and NOT gates only. Then, the inverters can be propagated back from the primary outputs towards the inputs by applying simple De Morgan""s laws. Some inverters may not be capable of being propagated all the way to a primary input and will be trapped. Since these inverters cannot be removed, the gate at which the inverter is trapped requires duplication to be implemented. This duplication generally causes substantial area, power consumption, timing, and reliability penalties.
There are some ways to reduce this duplication penalty. Considering a combinational logic function, the process of propagating an inverter forward is similar to choosing an implementation phase or polarity of the outputs that eliminates this inverter. This process can be very complex with exponential possibilities. Moreover, some inverters may need to be propagated back and some invertors get trapped and can only be removed by fanin cone duplication alluded to above. Since there are 2n possible phase assignments for implementing n primary outputs, it is difficult to find an ideal output phase assignment to minimize area or other network costs, a matter further complicated by design constraints related to the availability of only some input polarities and the need for particular polarities at specific primary outputs, etc. Arbitrarily choosing phase assignments can result in substantial network costs and synthesis quality.
If the various network costs associated with domino circuits could be reduced, processors and ASICs could be produced that are faster and cheaper. Any use of domino circuits could be improved. What is needed is a way to reduce the network costs associated with domino logic.
One embodiment of the present invention provides a method for reducing a network cost of a domino circuit. The domino circuit is represented as a mixed integer linear program. The mixed integer linear program is solved to determine an implementation that includes determining a final phase assignment that reduces the network cost.
Other embodiments are described and claimed.